import { ElMessageBox, ElMessage, ElLoading } from "element-plus";
import useUserStore from "@/store/modules/user";
export const serviceStatus = (res, isRelogin) => {
  let msg = "";
  // 未设置状态码则默认成功状态
  const code = res.data.code || 200;
  // 获取错误信息
  const message = res.data.message;
  if (code === 200) return {data:res.data}
  if (code === 401) {
    if (!isRelogin.show) {
      isRelogin.show = true;
      ElMessageBox.confirm(
        "登录状态已过期，您可以继续留在该页面，或者重新登录",
        "系统提示",
        {
          confirmButtonText: "重新登录",
          cancelButtonText: "取消",
          type: "warning",
        }
      )
        .then(() => {
          isRelogin.show = false;
          useUserStore()
            .logOut()
            .then(() => {
              location.href = "/index";
            });
        })
        .catch(() => {
          isRelogin.show = false;
        });
    }
    return {msg:"无效的会话，或者会话已过期，请重新登录。"}
  }
  switch (code) {
    case 400:
      msg = "400 错误请求";
      break;
    case 401:
      msg = "401 用户没有权限（令牌、用户名、密码错误）!";
      break;
    case 403:
      msg = "403 用户得到授权，但是访问是被禁止的!";
      break;
    // 404请求不存在
    case 404:
      msg = "404 网络请求错误，未找到该资源!";
      break;
    case 405:
      msg = "405 网络请求错误，请求方法未允许!";
      break;
    case 408:
      msg = "408 网络请求超时";
      break;
    case 500:
      msg = "500 服务器错误,请联系管理员!";
      break;
    case 501:
      msg = "501 网络未实现";
      break;
    case 502:
      msg = "502 网络错误";
      break;
    case 503:
      msg = "503 服务不可用，服务器暂时过载或维护!";
      break;
    case 504:
      msg = "网络超时";
      break;
    case 505:
      msg = "http版本不支持该请求!";
      break;
    default:
      msg = message ? message : "接口错误!";
  }
  ElMessage({ message: msg, type: "error" });
  return {msg}
};
